﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Entities;
using BLL;

namespace QLTB_CTK34
{
    public partial class FormCapNhapThietBi : Form
    {
      public FormCapNhapThietBi()
		{
			InitializeComponent();
            this.MaximizeBox = false;
		}
      public ThietBi tbsua;
	  public FormCapNhapThietBi(ThietBi _tb):this()
        {
			tbsua = _tb;
        }
      /// <summary>
      /// Khi Load form cập nhập thiết bị các thông tin của tài khoản sẽ được hiển thị lên các textbox combobox....
      /// </summary>
		private void CapNhapThietBi_Load(object sender, EventArgs e)
		{
            txtLoaiTB.Text = tbsua.LoaiTB;
			txtNhanHieu.Text = tbsua.NhanHieu;
			cbbTinhTrang.Text = tbsua.TinhTrang;
			txtXuatXu.Text = tbsua.XuatXu;
			dtpNgayNhap.Text = tbsua.NgayNhap.ToShortDateString();
            dtpNgayLapRap.Text = tbsua.NgayLapRap == null ? "" : ((DateTime)tbsua.NgayLapRap.Value).ToShortDateString();
			txtMaTB.Text = tbsua.MaTB;
            if (tbsua.LoaiTB.Trim().ToLower() == "máy tính")
            {
                LoadDSPhanCung();
            }
            else
            {
                gbdsphancung.Visible = false;
                this.Width = 340;
            }
            
		}
        /// <summary>
        /// nếu là thiết bị có phần cứng rõ ràng thì sẽ hiển thị danh sách phần cứng.
        /// </summary>
        void LoadDSPhanCung()
        {
            var maytinh = QLMayTinh.FindByMaTB(txtMaTB.Text);
            txtMaMT.Text = maytinh.MaMT;
            var dsphancung = QLPhanCung.FindByCondition(x => x.MayTinh.ThietBi.MaTB == txtMaTB.Text).ToList();
            foreach (PhanCung item in dsphancung)
            {
                ListViewItem lvi = new ListViewItem(item.TenPhanCung);
                lvi.SubItems.Add(item.ThongTinPhanCung);
                listViewDsPhanCung.Items.Add(lvi);
            }
        }
        /// <summary>
        /// Khi click vào button cập nhập hệ thống làm việc và cập nhập lại thông tin.
        /// </summary>
		private void btnCapNhapTB_Click_1(object sender, EventArgs e)
		{
            ThuVien.TRY_CATCH(() =>
            {
                ThietBi tb = new ThietBi();
                tb.MaTB = tbsua.MaTB;
                tb.NgayLapRap = dtpNgayLapRap.Value;
                tb.NhanHieu = txtNhanHieu.Text;
                tb.TinhTrang = cbbTinhTrang.Text;
                tb.XuatXu = txtXuatXu.Text;
                tb.NgayNhap = dtpNgayNhap.Value;
                tb.LoaiTB = txtLoaiTB.Text;;
                ActionResult kq = QLThietBi.Update(tb);
                kq.Show();
                if (kq.Success)
                {
					QLNhatKy.ThemNhatKy("Cập nhật thiết bị");
                    DialogResult=DialogResult.OK;
                    Close();
                }
            });
			
		}
        /// <summary>
        /// Khi click vào button mặc định các textbox,combobox.. sẽ quay lại trạng thái ban đầu.
        /// </summary>
		private void btnMacDinh_Click_1(object sender, EventArgs e)
		{
			txtNhanHieu.ResetText();
			txtXuatXu.ResetText();
			dtpNgayNhap.Value = DateTime.Now;
			dtpNgayLapRap.ResetText();
			cbbTinhTrang.ResetText();
		}
        /// <summary>
        /// Khi click vào button hủy sẽ thoát form.
        /// </summary>
		private void btnHuy_Click(object sender, EventArgs e)
		{
			Close();
		}
        MayTinh FindMayTinhTheoMaTB()
        {
            return QLMayTinh.FindByMaTB(txtMaTB.Text);
        }
        /// <summary>
        /// các toolstrip hổ trợ cho việc thêm và cập nhập phần cứng của thiết bị.
        /// </summary>
        private void thêmPhầnCứngToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FormPhanCung frmphancung = new FormPhanCung();
            frmphancung.ShowDialog();
            ListViewItem lvi = new ListViewItem(frmphancung.pc.TenPhanCung);
            lvi.SubItems.Add(frmphancung.pc.ThongTinPhanCung);
            listViewDsPhanCung.Items.Add(lvi);
            frmphancung.pc.MaMT = txtMaMT.Text;
            QLPhanCung.Insert(frmphancung.pc);
        }

        private void cậpNhậtPhầnCứngToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListViewItem lvi = listViewDsPhanCung.SelectedItems[0];
            FormPhanCung frmPC = new FormPhanCung(lvi.SubItems[0].Text, lvi.SubItems[1].Text);
            frmPC.ShowDialog();
            lvi.SubItems[0].Text = frmPC.pc.TenPhanCung;
            lvi.SubItems[1].Text = frmPC.pc.ThongTinPhanCung;
            frmPC.pc.MaMT = txtMaMT.Text;
            QLPhanCung.Update(frmPC.pc);
        }

       

        private void xóaPhầnCứngToolStripMenuItem_Click(object sender, EventArgs e)
        {
            PhanCung pc = new PhanCung();
            pc.TenPhanCung = listViewDsPhanCung.SelectedItems[0].SubItems[0].Text;
            pc.MaMT = txtMaMT.Text;
            QLPhanCung.DeleteByTenPC(pc).Show();
        }
        /// <summary>
        /// bắt các sự kiện trên list view.
        /// </summary>
        private void listViewDsPhanCung_DoubleClick(object sender, EventArgs e)
        {
            cậpNhậtPhầnCứngToolStripMenuItem.PerformClick();
        }

        private void listViewDsPhanCung_MouseEnter(object sender, EventArgs e)
        {
            if (listViewDsPhanCung.SelectedItems.Count > 0)
            {
                cậpNhậtPhầnCứngToolStripMenuItem.Visible = true;
                xóaPhầnCứngToolStripMenuItem.Visible = true;
            }
        }

        private void listViewDsPhanCung_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listViewDsPhanCung.SelectedItems.Count > 0)
            {
                thêmPhầnCứngToolStripMenuItem.Visible = true;
                cậpNhậtPhầnCứngToolStripMenuItem.Visible = true;
            }
        }
    }
}
